package com.linkstec.bookshop.service;

import java.util.List;

import com.linkstec.bookshop.pojo.Order;
import com.linkstec.bookshop.pojo.User;
import com.linkstec.bookshop.util.PageBean;
import com.linkstec.bookshop.vo.ScartVo;

/**
 * 
 * @ClassName: OrderService 订单服务层
 * @Description:TODO
 * @author: JGQiang
 * @date: 2018年11月26日 下午8:05:07
 */
public interface OrderService {

	/**
	 * 
	 * @Description:TODO 初次添加订单
	 * @author: JGQiang
	 * @date: 2018年11月26日 下午8:05:24
	 * @param user
	 * @param cartList
	 * @return
	 */
	int toOrder(User user, List<ScartVo> cartList) throws RuntimeException;

	/**
	 * 
	 * @Description:TODO 根据id查询主订单
	 * @author: JGQiang
	 * @date: 2018年11月27日 上午9:23:25
	 * @param oId
	 * @return
	 */
	Order findOneOrder(int oId) throws RuntimeException;

	/**
	 * 
	 * @Description:TODO 根据订单id查询子订单
	 * @author: JGQiang
	 * @date: 2018年11月27日 上午9:24:00
	 * @param oId
	 * @return
	 */
	List<ScartVo> findOrderDetail(int oId) throws RuntimeException;

	/**
	 * 
	 * @Description:TODO 支付订单
	 * @author: JGQiang
	 * @date: 2018年11月27日 上午10:16:14
	 * @param order
	 */
	void payOrder(Order order) throws RuntimeException;

	/**
	 * 
	 * @Description:TODO 查询当前用户的订单
	 * @author: JGQiang
	 * @date: 2018年11月27日 上午11:44:40
	 * @param page
	 * @param userId
	 * @return
	 */
	PageBean<Order> findOrderByUidAndPage(int page, int userId) throws RuntimeException;

	/**
	 * 
	 * @Description:TODO 更新订单状态
	 * @author: JGQiang
	 * @date: 2018年11月27日 下午3:10:56
	 * @param oState
	 * @param oId
	 */
	void updateState(int oState, int oId) throws RuntimeException;

	/**
	 * @Description:TODO 管理员查询order
	 * @author: yanyuan
	 * @date: 2018年11月27日 下午3:58:24
	 * @param page
	 * @return
	 */
	PageBean<Order> findAllOrder(int page, int oState) throws RuntimeException;

}
